package com.hulk.ratel.persistence.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.hulk.ratel.persistence.entity.SuperEntity;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 
 * </p>
 *
 * @author hulk
 * @since 2021-03-13
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("t_merchant_info")
public class MerchantInfo extends SuperEntity<MerchantInfo> {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 合作方入驻的商户号
     */
    @TableField("merchant_no")
    private String merchantNo;

    /**
     * 合作方首先入住聚合支付平台， 聚合支付平台通过其中的一个支付机构入到末端支付机构
     */
    @TableField("partner_no")
    private String partnerNo;

    @TableField("merchant_name")
    private String merchantName;

    @TableField("merchant_short_name")
    private String merchantShortName;

    /**
     * REALITY-商户真实的 VIRTUAL-商户虚拟的 PARTNET BRUSH
     */
    @TableField("merchant_type")
    private String merchantType;

    /**
     * PERSON-个人 ENTERPRISE-企业
     */
    @TableField("merchant_category")
    private String merchantCategory;

    @TableField("merchant_intro")
    private String merchantIntro;

    /**
     * MAIN-总店 BRANCH-分店
     */
    @TableField("merchant_level")
    private String merchantLevel;

    /**
     * 01-普通 02-铜牌 03-银牌 04-金牌
     */
    @TableField("merchant_grade")
    private String merchantGrade;

    @TableField("merchant_logo")
    private String merchantLogo;

    @TableField("merchant_license_no")
    private String merchantLicenseNo;

    @TableField("merchant_license_expried")
    private LocalDate merchantLicenseExpried;

    @TableField("merchant_license_pic")
    private String merchantLicensePic;

    @TableField("merchant_tax_no")
    private String merchantTaxNo;

    @TableField("merchant_tax_pic")
    private String merchantTaxPic;

    @TableField("merchant_code")
    private String merchantCode;

    /**
     * NORMAL-正常 FREEZE-冻结 CLOSE-销户 LOCK-锁定 NOENABLE-未激活
     */
    @TableField("merchant_status")
    private String merchantStatus;

    @TableField("merchant_address")
    private String merchantAddress;

    @TableField("merchant_deal_type")
    private String merchantDealType;

    @TableField("district_code")
    private String districtCode;

    @TableField("city_code")
    private String cityCode;

    @TableField("province_code")
    private String provinceCode;

    @TableField("zip_code")
    private String zipCode;

    @TableField("service_phone")
    private String servicePhone;

    @TableField("contact_type")
    private String contactType;

    @TableField("contact_name")
    private String contactName;

    @TableField("contact_mobile")
    private String contactMobile;

    @TableField("contact_fax")
    private String contactFax;

    @TableField("contact_email")
    private String contactEmail;

    @TableField("draw_fee")
    private BigDecimal drawFee;

    @TableField("txn_rate")
    private BigDecimal txnRate;

    @TableField("f_linkman_name")
    private String fLinkmanName;

    @TableField("f_linkman_phone")
    private String fLinkmanPhone;

    @TableField("f_linkman_fax")
    private String fLinkmanFax;

    @TableField("f_linkman_email")
    private String fLinkmanEmail;

    @TableField("remark")
    private String remark;

    @TableField("start_date")
    private LocalDate startDate;

    @TableField("expiry_date")
    private LocalDate expiryDate;

    @TableField("open_hours")
    private String openHours;

    @TableField("license_type")
    private String licenseType;

    @TableField("license_end_date")
    private LocalDate licenseEndDate;

    @TableField("tax_begin_date")
    private LocalDate taxBeginDate;

    @TableField("tax_end_date")
    private LocalDate taxEndDate;

    /**
     * M-男性；F-女性；N-未知
     */
    @TableField("legal_gender")
    private String legalGender;

    @TableField("legal_mobile")
    private String legalMobile;

    @TableField("legal_email")
    private String legalEmail;

    @TableField("legal_job")
    private String legalJob;

    @TableField("legal_address")
    private String legalAddress;

    @TableField("legal_certificate_no")
    private String legalCertificateNo;

    /**
     * ID-身份证
            PASSPORT-护照
            MILITARY-军官证
            SOLDIER-士兵证
            HVPS-回乡证
            TEMPID-临时身份证
            BOOKLET-户口簿
            POLICEID-警官证
            MTPS-台胞证
            LICENSE-营业执照
            OTHER-其他
            APOLICE-武警证
            HMPASS-港澳通行证
            SCARD-学生证
            WCARD-工作证
            BLICENSE-工商执照
            UTILITY-事业单位编码
            HOUSE-房产证
            ORGCODE-组织机构编码
            
     */
    @TableField("legal_certificate_type")
    private String legalCertificateType;

    @TableField("legal_certificate_begin_date")
    private LocalDate legalCertificateBeginDate;

    @TableField("legal_certificate_end_date")
    private LocalDate legalCertificateEndDate;

    @TableField("legal_person_head_pic")
    private String legalPersonHeadPic;

    @TableField("legal_person_name")
    private String legalPersonName;

    @TableField("legal_certificate_positive_pic")
    private String legalCertificatePositivePic;

    @TableField("legal_certificate_back_pic")
    private String legalCertificateBackPic;

    @TableField("license_pic")
    private String licensePic;

    /**
     * PUBLIC-对公 PRIVATE-对私
     */
    @TableField("account_type")
    private String accountType;

    @TableField("account_no")
    private String accountNo;

    @TableField("account_name")
    private String accountName;

    @TableField("bank_name")
    private String bankName;

    @TableField("bank_card_mobile")
    private String bankCardMobile;

    @TableField("bank_card_address")
    private String bankCardAddress;

    @TableField("bank_branch_name")
    private String bankBranchName;

    @TableField("bank_branch_no")
    private String bankBranchNo;

    @TableField("bank_no")
    private String bankNo;

    @TableField("bank_branch_province")
    private String bankBranchProvince;

    @TableField("bank_branch_city")
    private String bankBranchCity;

    /**
     * ID-身份证
            PASSPORT-护照
            MILITARY-军官证
            SOLDIER-士兵证
            HVPS-回乡证
            TEMPID-临时身份证
            BOOKLET-户口簿
            POLICEID-警官证
            MTPS-台胞证
            LICENSE-营业执照
            OTHER-其他
            APOLICE-武警证
            HMPASS-港澳通行证
            SCARD-学生证
            WCARD-工作证
            BLICENSE-工商执照
            UTILITY-事业单位编码
            HOUSE-房产证
            ORGCODE-组织机构编码
            
     */
    @TableField("bank_cardcert_type")
    private String bankCardcertType;

    @TableField("bank_cardcert_no")
    private String bankCardcertNo;

    /**
     * LEGAL：(法人)；CONTROLLER：(实际控制人)；AGENT：(代理人)；OTHER：(其他)
     */
    @TableField("principal_type")
    private String principalType;

    @TableField("principal_head_pic")
    private String principalHeadPic;

    @TableField("principal_email")
    private String principalEmail;

    @TableField("principal_mobile")
    private String principalMobile;

    /**
     * ID-身份证
            PASSPORT-护照
            MILITARY-军官证
            SOLDIER-士兵证
            HVPS-回乡证
            TEMPID-临时身份证
            BOOKLET-户口簿
            POLICEID-警官证
            MTPS-台胞证
            LICENSE-营业执照
            OTHER-其他
            APOLICE-武警证
            HMPASS-港澳通行证
            SCARD-学生证
            WCARD-工作证
            BLICENSE-工商执照
            UTILITY-事业单位编码
            HOUSE-房产证
            ORGCODE-组织机构编码
            
     */
    @TableField("principal_cert_type")
    private String principalCertType;

    @TableField("principal_cert_no")
    private String principalCertNo;

    @TableField("principal_cert_positive_pci")
    private String principalCertPositivePci;

    @TableField("principal_cert_back_pic")
    private String principalCertBackPic;

    @TableField("principal_cert_begin_date")
    private LocalDate principalCertBeginDate;

    @TableField("principal_cert_end_date")
    private LocalDate principalCertEndDate;

    @TableField("principal_person")
    private String principalPerson;

    /**
     * M-男性；F-女性；N-未知
     */
    @TableField("principal_gender")
    private String principalGender;

    @TableField("org_cert_code")
    private String orgCertCode;

    @TableField("org_cert_pic")
    private String orgCertPic;

    @TableField("industry_license_pic")
    private String industryLicensePic;

    @TableField("business_select")
    private String businessSelect;

    @TableField("created_by")
    private String createdBy;

    @TableField(value = "created_time", fill = FieldFill.INSERT)
    private LocalDateTime createdTime;

    @TableField("audited_time")
    private LocalDateTime auditedTime;

    /**
     * N-未审核 Y-已审核 U-已修改
     */
    @TableField("audited_flag")
    private String auditedFlag;

    @TableField("audited_by")
    private String auditedBy;

    @TableField("updated_by")
    private String updatedBy;

    @TableField(value = "updated_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedTime;

    @TableField("archived_time")
    private LocalDateTime archivedTime;

    /**
     * 1:已删除 0:未删除
     */
    @TableField("archived_flag")
    private String archivedFlag;

    @TableField("tenant_id")
    private String tenantId;

    @TableField("ori_id")
    private String oriId;

    @TableField("rsv1")
    private String rsv1;


    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
